package com.eduagent.xwqeduagent.service;


import com.eduagent.xwqeduagent.model.vo.ChatEventVO;
import org.springframework.web.multipart.MultipartFile;
import reactor.core.publisher.Flux;

import java.util.List;

public interface ChatService {

    /**
     * 聊天
     *
     * @param question  问题
     * @param sessionId 会话id
     * @return 回答内容
     */
    Flux<ChatEventVO> chat(String question, String sessionId);

    /**
     * 停止生成
     *
     * @param sessionId 会话id
     */
    void stop(String sessionId);

    /**
     * 获取对话id，规则：用户id_会话id
     *
     * @param sessionId 会话id
     * @return 对话id
     */
    // TODO: 2025/5/18 这里要改成获取当前登录用户的id 
    static String getConversationId(String sessionId) {
        return "18974901186" + "_" + sessionId;
    }

    /**
     * 多模型聊天
     *
     * @param question  用户提问
     * @param sessionId 会话id
     * @param files     文件列表
     * @return 大模型的回答
     */
    Flux<String> chatStreamMultiModel(String question, String sessionId, List<MultipartFile> files);

    /**
     * 文本对话
     *
     * @param question 问题
     * @return 回答
     */
    String chatText(String question,  String sessionId);

}
